package co.yixiang.modules.user.service.dto;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

/**
 * @ClassName WechatUserDTO
 * @Author hupeng <610796224@qq.com>
 * @Date 2020/6/4
 **/
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class WechatUserDto {

    private String openid;

    private String unionId;

    private String routineOpenid;

    private String nickname;

    private String headimgurl;

    private Integer sex;

    private String city;

    private String language;

    private String province;

    private String country;

    private Boolean subscribe;

    private Long subscribeTime;

    public static WechatUserDtoBuilder builder() {
        return new WechatUserDtoBuilder();
    }

    public static class WechatUserDtoBuilder {
        private String openid;
        private String unionId;
        private String routineOpenid;
        private String nickname;
        private String headimgurl;
        private Integer sex;
        private String city;
        private String language;
        private String province;
        private String country;
        private Boolean subscribe;
        private Long subscribeTime;

        WechatUserDtoBuilder() {
        }

        public WechatUserDtoBuilder openid(String openid) {
            this.openid = openid;
            return this;
        }

        public WechatUserDtoBuilder unionId(String unionId) {
            this.unionId = unionId;
            return this;
        }

        public WechatUserDtoBuilder routineOpenid(String routineOpenid) {
            this.routineOpenid = routineOpenid;
            return this;
        }

        public WechatUserDtoBuilder nickname(String nickname) {
            this.nickname = nickname;
            return this;
        }

        public WechatUserDtoBuilder headimgurl(String headimgurl) {
            this.headimgurl = headimgurl;
            return this;
        }

        public WechatUserDtoBuilder sex(Integer sex) {
            this.sex = sex;
            return this;
        }

        public WechatUserDtoBuilder city(String city) {
            this.city = city;
            return this;
        }

        public WechatUserDtoBuilder language(String language) {
            this.language = language;
            return this;
        }

        public WechatUserDtoBuilder province(String province) {
            this.province = province;
            return this;
        }

        public WechatUserDtoBuilder country(String country) {
            this.country = country;
            return this;
        }

        public WechatUserDtoBuilder subscribe(Boolean subscribe) {
            this.subscribe = subscribe;
            return this;
        }

        public WechatUserDtoBuilder subscribeTime(Long subscribeTime) {
            this.subscribeTime = subscribeTime;
            return this;
        }

        public WechatUserDto build() {
            return new WechatUserDto(openid, unionId, routineOpenid, nickname, headimgurl, sex, city, language, province, country, subscribe, subscribeTime);
        }

        public String toString() {
            return "WechatUserDto.WechatUserDtoBuilder(openid=" + this.openid + ", unionId=" + this.unionId + ", routineOpenid=" + this.routineOpenid + ", nickname=" + this.nickname + ", headimgurl=" + this.headimgurl + ", sex=" + this.sex + ", city=" + this.city + ", language=" + this.language + ", province=" + this.province + ", country=" + this.country + ", subscribe=" + this.subscribe + ", subscribeTime=" + this.subscribeTime + ")";
        }
    }
}
